dW5rbm93biBoYXNoAgAAAAAAAAABAAAAAQAAAAEAAAAEAAAABQAAAAEAAAAAAAAA/////wcABwAHAAAABwAAAAMAAABQiwAA8o0AAAoAAABpblBvc2l0aW9uDAAAAF91aW5Qb3NpdGlvbgAAAAABAAAAAQAAAAAAAAAAAAAAUosAAPGNAAAHAAAAaW5Db2xvcgkAAABfdWluQ29sb3IAAAAAAQAAAAEAAAAAAAAAAQAAAFCLAADyjQAADAAAAGluTG9jYWxDb29yZA4AAABfdWluTG9jYWxDb29yZAAAAAABAAAAAQAAAAAAAAACAAAABQAAAFKLAADyjQAACwAAAHNrX1JUQWRqdXN0DQAAAF91c2tfUlRBZGp1c3QAAAAAAQAAAAEAAAAAAAAA/////////////////////wAAAABbiwAA8o0AAB4AAAB1Q29vcmRUcmFuc2Zvcm1NYXRyaXhfMF9TdGFnZTAgAAAAX3V1Q29vcmRUcmFuc2Zvcm1NYXRyaXhfMF9TdGFnZTAAAAAAAQAAAAEAAAAAAAAA/////////////////////wAAAABQiwAA8Y0AABYAAAB1SW1hZ2VJbmNyZW1lbnRfU3RhZ2UxGAAAAF91dUltYWdlSW5jcmVtZW50X1N0YWdlMQAAAAABAAAAAQAAAAAAAAD/////////////////////AAAAAFKLAADxjQAAEQAAAHVLZXJuZWxfU3RhZ2UxWzBdEwAAAF91dUtlcm5lbF9TdGFnZTFbMF0BAAAABQAAAAEAAAABAAAAAAAAAP////////////////////8AAAAAXosAAAAAAAAYAAAAdVRleHR1cmVTYW1wbGVyXzBfU3RhZ2UxGgAAAF91dVRleHR1cmVTYW1wbGVyXzBfU3RhZ2UxAAAAAAEAAAABAAAAAAAAAP////////////////////8AAAAACQAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAACAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAEAAAAAAAAAAEAAAADAAAAAAAAAAIAAAADAAAAAAAAAAMAAAADAAAAAAAAAAQAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjIwAAAAAAAAAAAAAAAAAAAEAAAAGFAAAAQABAAEAAAAEAAAABQAAAAEAAAAAAAAAAQAAAAAAAAAFAAAABQAAAAAAAAAFAAAABQAAAAMAAACGgAAAEhkAAEMQlIYGAAAAALEAAAAAAAAAAAAAAQAAAAIAAAD/////////////////////////////////////////////////////////////////////EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAP///////////////wEAAAAAAAAAAAAAAAEAAAD///////////////8DAAAAAAAAAAAAAAD/////AAAAAP//////////AQAAAAAAAAAAAAAA/////wEAAAD//////////wUAAAAAAAAAAQAAAP////8AAAAA//////////8BAAAAAAAAAAAAAAAAAAAA8gcAAHN0cnVjdCBWU19PVVRQVVQKewogICAgZmxvYXQ0IGR4X1Bvc2l0aW9uIDogU1ZfUG9zaXRpb247CiAgICBmbG9hdDQgZ2xfUG9zaXRpb24gOiBURVhDT09SRDI7CiAgICBmbG9hdDQgdjAgOiBURVhDT09SRDA7CiAgICBmbG9hdDIgdjEgOiBURVhDT09SRDE7Cn07CmZsb2F0MyB2ZWMzX2N0b3IoZmxvYXQyIHgwLCBmbG9hdCB4MSkKewogICAgcmV0dXJuIGZsb2F0Myh4MCwgeDEpOwp9CmZsb2F0NCB2ZWM0X2N0b3IoZmxvYXQgeDAsIGZsb2F0IHgxLCBmbG9hdCB4MiwgZmxvYXQgeDMpCnsKICAgIHJldHVybiBmbG9hdDQoeDAsIHgxLCB4MiwgeDMpOwp9CmZsb2F0NCB2ZWM0X2N0b3IoZmxvYXQyIHgwLCBmbG9hdCB4MSwgZmxvYXQgeDIpCnsKICAgIHJldHVybiBmbG9hdDQoeDAsIHgxLCB4Mik7Cn0KLy8gVW5pZm9ybXMKCnVuaWZvcm0gZmxvYXQ0IF9za19SVEFkanVzdCA6IHJlZ2lzdGVyKGMwKTsKdW5pZm9ybSBmbG9hdDN4MyBfdUNvb3JkVHJhbnNmb3JtTWF0cml4XzBfU3RhZ2UwIDogcmVnaXN0ZXIoYzEpOwojaWZkZWYgQU5HTEVfRU5BQkxFX0xPT1BfRkxBVFRFTgojZGVmaW5lIExPT1AgW2xvb3BdCiNkZWZpbmUgRkxBVFRFTiBbZmxhdHRlbl0KI2Vsc2UKI2RlZmluZSBMT09QCiNkZWZpbmUgRkxBVFRFTgojZW5kaWYKCiNkZWZpbmUgQVRPTUlDX0NPVU5URVJfQVJSQVlfU1RSSURFIDQKCi8vIEF0dHJpYnV0ZXMKc3RhdGljIGZsb2F0MiBfaW5Qb3NpdGlvbiA9IHswLCAwfTsKc3RhdGljIGZsb2F0NCBfaW5Db2xvciA9IHswLCAwLCAwLCAwfTsKc3RhdGljIGZsb2F0MiBfaW5Mb2NhbENvb3JkID0gezAsIDB9OwoKc3RhdGljIGZsb2F0NCBnbF9Qb3NpdGlvbiA9IGZsb2F0NCgwLCAwLCAwLCAwKTsKCi8vIFZhcnlpbmdzCnN0YXRpYyAgZmxvYXQ0IF92Y29sb3JfU3RhZ2UwID0gezAsIDAsIDAsIDB9OwpzdGF0aWMgIGZsb2F0MiBfdlRyYW5zZm9ybWVkQ29vcmRzXzBfU3RhZ2UwID0gezAsIDB9OwoKY2J1ZmZlciBEcml2ZXJDb25zdGFudHMgOiByZWdpc3RlcihiMSkKewogICAgZmxvYXQ0IGR4X1ZpZXdBZGp1c3QgOiBwYWNrb2Zmc2V0KGMxKTsKICAgIGZsb2F0MiBkeF9WaWV3Q29vcmRzIDogcGFja29mZnNldChjMik7CiAgICBmbG9hdDIgZHhfVmlld1NjYWxlICA6IHBhY2tvZmZzZXQoYzMpOwp9OwoKQEAgVkVSVEVYIEFUVFJJQlVURVMgQEAKClZTX09VVFBVVCBnZW5lcmF0ZU91dHB1dChWU19JTlBVVCBpbnB1dCkKewogICAgVlNfT1VUUFVUIG91dHB1dDsKICAgIG91dHB1dC5nbF9Qb3NpdGlvbiA9IGdsX1Bvc2l0aW9uOwogICAgb3V0cHV0LmR4X1Bvc2l0aW9uLnggPSBnbF9Qb3NpdGlvbi54OwogICAgb3V0cHV0LmR4X1Bvc2l0aW9uLnkgPSAtIGdsX1Bvc2l0aW9uLnk7CiAgICBvdXRwdXQuZHhfUG9zaXRpb24ueiA9IChnbF9Qb3NpdGlvbi56ICsgZ2xfUG9zaXRpb24udykgKiAwLjU7CiAgICBvdXRwdXQuZHhfUG9zaXRpb24udyA9IGdsX1Bvc2l0aW9uLnc7CiAgICBvdXRwdXQudjAgPSBfdmNvbG9yX1N0YWdlMDsKICAgIG91dHB1dC52MSA9IF92VHJhbnNmb3JtZWRDb29yZHNfMF9TdGFnZTA7CgogICAgcmV0dXJuIG91dHB1dDsKfQoKVlNfT1VUUFVUIG1haW4oVlNfSU5QVVQgaW5wdXQpewogICAgaW5pdEF0dHJpYnV0ZXMoaW5wdXQpOwoKZmxvYXQ0IF9jb2xvciA9IF9pbkNvbG9yOwooX3Zjb2xvcl9TdGFnZTAgPSBfY29sb3IpOwpmbG9hdDIgX3BvczIgPSBfaW5Qb3NpdGlvbjsKKF92VHJhbnNmb3JtZWRDb29yZHNfMF9TdGFnZTAgPSBtdWwodHJhbnNwb3NlKF91Q29vcmRUcmFuc2Zvcm1NYXRyaXhfMF9TdGFnZTApLCB2ZWMzX2N0b3IoX2luTG9jYWxDb29yZCwgMS4wKSkueHkpOwooZ2xfUG9zaXRpb24gPSB2ZWM0X2N0b3IoX3BvczIueCwgX3BvczIueSwgMC4wLCAxLjApKTsKKGdsX1Bvc2l0aW9uID0gdmVjNF9jdG9yKCgoZ2xfUG9zaXRpb24ueHkgKiBfc2tfUlRBZGp1c3QueHopICsgKGdsX1Bvc2l0aW9uLnd3ICogX3NrX1JUQWRqdXN0Lnl3KSksIDAuMCwgZ2xfUG9zaXRpb24udykpOwpyZXR1cm4gZ2VuZXJhdGVPdXRwdXQoaW5wdXQpOwp9CgAAAJISAABzdHJ1Y3QgUFNfSU5QVVQKewogICAgZmxvYXQ0IGR4X1Bvc2l0aW9uIDogU1ZfUG9zaXRpb247CiAgICBmbG9hdDQgZ2xfUG9zaXRpb24gOiBURVhDT09SRDI7CiAgICBmbG9hdDQgdjAgOiBURVhDT09SRDA7CiAgICBmbG9hdDIgdjEgOiBURVhDT09SRDE7Cn07CgovLyBVbmlmb3JtcwoKdW5pZm9ybSBmbG9hdDIgX3VJbWFnZUluY3JlbWVudF9TdGFnZTEgOiByZWdpc3RlcihjMCk7CnVuaWZvcm0gZmxvYXQ0IF91S2VybmVsX1N0YWdlMVs1XSA6IHJlZ2lzdGVyKGMxKTsKc3RhdGljIGNvbnN0IHVpbnQgX3VUZXh0dXJlU2FtcGxlcl8wX1N0YWdlMSA9IDA7CnVuaWZvcm0gVGV4dHVyZTJEPGZsb2F0ND4gdGV4dHVyZXMyRFsxXSA6IHJlZ2lzdGVyKHQwKTsKdW5pZm9ybSBTYW1wbGVyU3RhdGUgc2FtcGxlcnMyRFsxXSA6IHJlZ2lzdGVyKHMwKTsKI2lmZGVmIEFOR0xFX0VOQUJMRV9MT09QX0ZMQVRURU4KI2RlZmluZSBMT09QIFtsb29wXQojZGVmaW5lIEZMQVRURU4gW2ZsYXR0ZW5dCiNlbHNlCiNkZWZpbmUgTE9PUAojZGVmaW5lIEZMQVRURU4KI2VuZGlmCgojZGVmaW5lIEFUT01JQ19DT1VOVEVSX0FSUkFZX1NUUklERSA0CgovLyBWYXJ5aW5ncwpzdGF0aWMgIGZsb2F0NCBfdmNvbG9yX1N0YWdlMCA9IHswLCAwLCAwLCAwfTsKc3RhdGljICBmbG9hdDIgX3ZUcmFuc2Zvcm1lZENvb3Jkc18wX1N0YWdlMCA9IHswLCAwfTsKCnN0YXRpYyBmbG9hdDQgZ2xfQ29sb3JbMV0gPQp7CiAgICBmbG9hdDQoMCwgMCwgMCwgMCkKfTsKCmNidWZmZXIgRHJpdmVyQ29uc3RhbnRzIDogcmVnaXN0ZXIoYjEpCnsKICAgIHN0cnVjdCBTYW1wbGVyTWV0YWRhdGEKICAgIHsKICAgICAgICBpbnQgYmFzZUxldmVsOwogICAgICAgIGludCBpbnRlcm5hbEZvcm1hdEJpdHM7CiAgICAgICAgaW50IHdyYXBNb2RlczsKICAgICAgICBpbnQgcGFkZGluZzsKICAgICAgICBpbnQ0IGludEJvcmRlckNvbG9yOwogICAgfTsKICAgIFNhbXBsZXJNZXRhZGF0YSBzYW1wbGVyTWV0YWRhdGFbMV0gOiBwYWNrb2Zmc2V0KGM0KTsKfTsKCiNkZWZpbmUgR0xfVVNFU19GUkFHX0NPTE9SCmZsb2F0NCBnbF90ZXh0dXJlMkQodWludCBzYW1wbGVySW5kZXgsIGZsb2F0MiB0LCBmbG9hdCBiaWFzKQp7CiAgICByZXR1cm4gdGV4dHVyZXMyRFtzYW1wbGVySW5kZXhdLlNhbXBsZUJpYXMoc2FtcGxlcnMyRFtzYW1wbGVySW5kZXhdLCBmbG9hdDIodC54LCB0LnkpLCBiaWFzKTsKfQoKQEAgUElYRUwgT1VUUFVUIEBACgpQU19PVVRQVVQgbWFpbihQU19JTlBVVCBpbnB1dCl7CiAgICBfdmNvbG9yX1N0YWdlMCA9IGlucHV0LnYwOwogICAgX3ZUcmFuc2Zvcm1lZENvb3Jkc18wX1N0YWdlMCA9IGlucHV0LnYxLnh5OwoKZmxvYXQ0IF9vdXRwdXRDb2xvcl9TdGFnZTAgPSB7MCwgMCwgMCwgMH07CnsKKF9vdXRwdXRDb2xvcl9TdGFnZTAgPSBfdmNvbG9yX1N0YWdlMCk7Cn0KZmxvYXQ0IF9vdXRwdXRfU3RhZ2UxID0gezAsIDAsIDAsIDB9Owp7Cihfb3V0cHV0X1N0YWdlMSA9IGZsb2F0NCgwLjAsIDAuMCwgMC4wLCAwLjApKTsKZmxvYXQyIF9jb29yZCA9IChfdlRyYW5zZm9ybWVkQ29vcmRzXzBfU3RhZ2UwIC0gKDguMCAqIF91SW1hZ2VJbmNyZW1lbnRfU3RhZ2UxKSk7CmZsb2F0MiBfY29vcmRTYW1wbGVkID0gezAuMCwgMC4wfTsKKF9jb29yZFNhbXBsZWQgPSBfY29vcmQpOwooX291dHB1dF9TdGFnZTEgKz0gKGdsX3RleHR1cmUyRChfdVRleHR1cmVTYW1wbGVyXzBfU3RhZ2UxLCBfY29vcmRTYW1wbGVkLCAtMC41KS54eHh4ICogX3VLZXJuZWxfU3RhZ2UxWzBdLngpKTsKKF9jb29yZCArPSBfdUltYWdlSW5jcmVtZW50X1N0YWdlMSk7CihfY29vcmRTYW1wbGVkID0gX2Nvb3JkKTsKKF9vdXRwdXRfU3RhZ2UxICs9IChnbF90ZXh0dXJlMkQoX3VUZXh0dXJlU2FtcGxlcl8wX1N0YWdlMSwgX2Nvb3JkU2FtcGxlZCwgLTAuNSkueHh4eCAqIF91S2VybmVsX1N0YWdlMVswXS55KSk7CihfY29vcmQgKz0gX3VJbWFnZUluY3JlbWVudF9TdGFnZTEpOwooX2Nvb3JkU2FtcGxlZCA9IF9jb29yZCk7Cihfb3V0cHV0X1N0YWdlMSArPSAoZ2xfdGV4dHVyZTJEKF91VGV4dHVyZVNhbXBsZXJfMF9TdGFnZTEsIF9jb29yZFNhbXBsZWQsIC0wLjUpLnh4eHggKiBfdUtlcm5lbF9TdGFnZTFbMF0ueikpOwooX2Nvb3JkICs9IF91SW1hZ2VJbmNyZW1lbnRfU3RhZ2UxKTsKKF9jb29yZFNhbXBsZWQgPSBfY29vcmQpOwooX291dHB1dF9TdGFnZTEgKz0gKGdsX3RleHR1cmUyRChfdVRleHR1cmVTYW1wbGVyXzBfU3RhZ2UxLCBfY29vcmRTYW1wbGVkLCAtMC41KS54eHh4ICogX3VLZXJuZWxfU3RhZ2UxWzBdLncpKTsKKF9jb29yZCArPSBfdUltYWdlSW5jcmVtZW50X1N0YWdlMSk7CihfY29vcmRTYW1wbGVkID0gX2Nvb3JkKTsKKF9vdXRwdXRfU3RhZ2UxICs9IChnbF90ZXh0dXJlMkQoX3VUZXh0dXJlU2FtcGxlcl8wX1N0YWdlMSwgX2Nvb3JkU2FtcGxlZCwgLTAuNSkueHh4eCAqIF91S2VybmVsX1N0YWdlMVsxXS54KSk7CihfY29vcmQgKz0gX3VJbWFnZUluY3JlbWVudF9TdGFnZTEpOwooX2Nvb3JkU2FtcGxlZCA9IF9jb29yZCk7Cihfb3V0cHV0X1N0YWdlMSArPSAoZ2xfdGV4dHVyZTJEKF91VGV4dHVyZVNhbXBsZXJfMF9TdGFnZTEsIF9jb29yZFNhbXBsZWQsIC0wLjUpLnh4eHggKiBfdUtlcm5lbF9TdGFnZTFbMV0ueSkpOwooX2Nvb3JkICs9IF91SW1hZ2VJbmNyZW1lbnRfU3RhZ2UxKTsKKF9jb29yZFNhbXBsZWQgPSBfY29vcmQpOwooX291dHB1dF9TdGFnZTEgKz0gKGdsX3RleHR1cmUyRChfdVRleHR1cmVTYW1wbGVyXzBfU3RhZ2UxLCBfY29vcmRTYW1wbGVkLCAtMC41KS54eHh4ICogX3VLZXJuZWxfU3RhZ2UxWzFdLnopKTsKKF9jb29yZCArPSBfdUltYWdlSW5jcmVtZW50X1N0YWdlMSk7CihfY29vcmRTYW1wbGVkID0gX2Nvb3JkKTsKKF9vdXRwdXRfU3RhZ2UxICs9IChnbF90ZXh0dXJlMkQoX3VUZXh0dXJlU2FtcGxlcl8wX1N0YWdlMSwgX2Nvb3JkU2FtcGxlZCwgLTAuNSkueHh4eCAqIF91S2VybmVsX1N0YWdlMVsxXS53KSk7CihfY29vcmQgKz0gX3VJbWFnZUluY3JlbWVudF9TdGFnZTEpOwooX2Nvb3JkU2FtcGxlZCA9IF9jb29yZCk7Cihfb3V0cHV0X1N0YWdlMSArPSAoZ2xfdGV4dHVyZTJEKF91VGV4dHVyZVNhbXBsZXJfMF9TdGFnZTEsIF9jb29yZFNhbXBsZWQsIC0wLjUpLnh4eHggKiBfdUtlcm5lbF9TdGFnZTFbMl0ueCkpOwooX2Nvb3JkICs9IF91SW1hZ2VJbmNyZW1lbnRfU3RhZ2UxKTsKKF9jb29yZFNhbXBsZWQgPSBfY29vcmQpOwooX291dHB1dF9TdGFnZTEgKz0gKGdsX3RleHR1cmUyRChfdVRleHR1cmVTYW1wbGVyXzBfU3RhZ2UxLCBfY29vcmRTYW1wbGVkLCAtMC41KS54eHh4ICogX3VLZXJuZWxfU3RhZ2UxWzJdLnkpKTsKKF9jb29yZCArPSBfdUltYWdlSW5jcmVtZW50X1N0YWdlMSk7CihfY29vcmRTYW1wbGVkID0gX2Nvb3JkKTsKKF9vdXRwdXRfU3RhZ2UxICs9IChnbF90ZXh0dXJlMkQoX3VUZXh0dXJlU2FtcGxlcl8wX1N0YWdlMSwgX2Nvb3JkU2FtcGxlZCwgLTAuNSkueHh4eCAqIF91S2VybmVsX1N0YWdlMVsyXS56KSk7CihfY29vcmQgKz0gX3VJbWFnZUluY3JlbWVudF9TdGFnZTEpOwooX2Nvb3JkU2FtcGxlZCA9IF9jb29yZCk7Cihfb3V0cHV0X1N0YWdlMSArPSAoZ2xfdGV4dHVyZTJEKF91VGV4dHVyZVNhbXBsZXJfMF9TdGFnZTEsIF9jb29yZFNhbXBsZWQsIC0wLjUpLnh4eHggKiBfdUtlcm5lbF9TdGFnZTFbMl0udykpOwooX2Nvb3JkICs9IF91SW1hZ2VJbmNyZW1lbnRfU3RhZ2UxKTsKKF9jb29yZFNhbXBsZWQgPSBfY29vcmQpOwooX291dHB1dF9TdGFnZTEgKz0gKGdsX3RleHR1cmUyRChfdVRleHR1cmVTYW1wbGVyXzBfU3RhZ2UxLCBfY29vcmRTYW1wbGVkLCAtMC41KS54eHh4ICogX3VLZXJuZWxfU3RhZ2UxWzNdLngpKTsKKF9jb29yZCArPSBfdUltYWdlSW5jcmVtZW50X1N0YWdlMSk7CihfY29vcmRTYW1wbGVkID0gX2Nvb3JkKTsKKF9vdXRwdXRfU3RhZ2UxICs9IChnbF90ZXh0dXJlMkQoX3VUZXh0dXJlU2FtcGxlcl8wX1N0YWdlMSwgX2Nvb3JkU2FtcGxlZCwgLTAuNSkueHh4eCAqIF91S2VybmVsX1N0YWdlMVszXS55KSk7CihfY29vcmQgKz0gX3VJbWFnZUluY3JlbWVudF9TdGFnZTEpOwooX2Nvb3JkU2FtcGxlZCA9IF9jb29yZCk7Cihfb3V0cHV0X1N0YWdlMSArPSAoZ2xfdGV4dHVyZTJEKF91VGV4dHVyZVNhbXBsZXJfMF9TdGFnZTEsIF9jb29yZFNhbXBsZWQsIC0wLjUpLnh4eHggKiBfdUtlcm5lbF9TdGFnZTFbM10ueikpOwooX2Nvb3JkICs9IF91SW1hZ2VJbmNyZW1lbnRfU3RhZ2UxKTsKKF9jb29yZFNhbXBsZWQgPSBfY29vcmQpOwooX291dHB1dF9TdGFnZTEgKz0gKGdsX3RleHR1cmUyRChfdVRleHR1cmVTYW1wbGVyXzBfU3RhZ2UxLCBfY29vcmRTYW1wbGVkLCAtMC41KS54eHh4ICogX3VLZXJuZWxfU3RhZ2UxWzNdLncpKTsKKF9jb29yZCArPSBfdUltYWdlSW5jcmVtZW50X1N0YWdlMSk7CihfY29vcmRTYW1wbGVkID0gX2Nvb3JkKTsKKF9vdXRwdXRfU3RhZ2UxICs9IChnbF90ZXh0dXJlMkQoX3VUZXh0dXJlU2FtcGxlcl8wX1N0YWdlMSwgX2Nvb3JkU2FtcGxlZCwgLTAuNSkueHh4eCAqIF91S2VybmVsX1N0YWdlMVs0XS54KSk7CihfY29vcmQgKz0gX3VJbWFnZUluY3JlbWVudF9TdGFnZTEpOwooX291dHB1dF9TdGFnZTEgKj0gX291dHB1dENvbG9yX1N0YWdlMCk7Cn0KewooZ2xfQ29sb3JbMF0gPSBfb3V0cHV0X1N0YWdlMSk7Cn0KKGdsX0NvbG9yWzBdID0gZ2xfQ29sb3JbMF0ud3d3dyk7CnJldHVybiBnZW5lcmF0ZU91dHB1dCgpOwp9CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAUosAAAkAAABnbF9Db2xvcjALAAAAZ2xfQ29sb3JbMF0AAAAAUgIAAHN0cnVjdCBHU19JTlBVVAp7CiAgICBmbG9hdDQgZHhfUG9zaXRpb24gOiBTVl9Qb3NpdGlvbjsKICAgIGZsb2F0NCBnbF9Qb3NpdGlvbiA6IFRFWENPT1JEMjsKICAgIGZsb2F0NCB2MCA6IFRFWENPT1JEMDsKICAgIGZsb2F0MiB2MSA6IFRFWENPT1JEMTsKfTsKCnN0cnVjdCBHU19PVVRQVVQKewogICAgZmxvYXQ0IGR4X1Bvc2l0aW9uIDogU1ZfUG9zaXRpb247CiAgICBmbG9hdDQgZ2xfUG9zaXRpb24gOiBURVhDT09SRDI7CiAgICBmbG9hdDQgdjAgOiBURVhDT09SRDA7CiAgICBmbG9hdDIgdjEgOiBURVhDT09SRDE7Cn07Cgp2b2lkIGNvcHlWZXJ0ZXgoaW5vdXQgR1NfT1VUUFVUIG91dHB1dCwgR1NfSU5QVVQgaW5wdXQsIEdTX0lOUFVUIGZsYXRpbnB1dCkKewogICAgb3V0cHV0LmdsX1Bvc2l0aW9uID0gaW5wdXQuZ2xfUG9zaXRpb247CiAgICBvdXRwdXQudjAgPSBpbnB1dC52MDsgCiAgICBvdXRwdXQudjEgPSBpbnB1dC52MTsgCiNpZm5k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